package ysq.xyg.sys.service;


import ysq.xyg.base.model.dto.ReturnEntity;
import ysq.xyg.base.service.BaseService;
import ysq.xyg.sys.model.po.SysUser;
import ysq.xyg.sys.model.po.SysUser;
import ysq.xyg.sys.model.vo.SysUserVo;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * 系统管理-用户信息service接口
 *
 * @author shengQiang yu
 * @date 2019-3-30 11:24:36
 */
public interface SysUserService extends BaseService<SysUser> {
    /**
     * 登录
     *
     * @param loginName 登录名
     * @param password 登录密码
     * @param autoLogin 自动登录：1、是，2、否
     * @return
     * @author shengQiang yu
     * @date 2019-04-08 11:27
     */
    ReturnEntity WebLogin(HttpServletRequest request, HttpServletResponse response, String loginName, String password, String autoLogin);
    /**
     * 退出
     *
     * @author shengQiang yu
     * @date 2019-04-08 11:27
     */
    public ReturnEntity webExit(HttpServletRequest request);
    /**
     * 分页查询
     *
     * @param sysUserVo 对象
     * @param pageSize 当前页面
     * @param pageNum 页面数量
     * @return ReturnEntity 对象
     * @author shengQiang yu
     * @date 2019-3-30 11:24:36
     */
    ReturnEntity pageLeft(SysUserVo sysUserVo, int pageSize, int pageNum);
    /**
     * 分页查询
     *
     * @param sysUserVo 对象
     * @param pageSize 当前页面
     * @param pageNum 页面数量
     * @return ReturnEntity 对象
     * @author shengQiang yu
     * @date 2019-3-30 11:24:36
     */
    ReturnEntity page(SysUserVo sysUserVo, int pageSize, int pageNum);
    /**
     * 修改
     *
     * @param sysUserVo 对象
     * @param currentUser 当前用户
     * @return ReturnEntity 对象
     * @author shengQiang yu
     * @date 2019-3-30 11:24:36
     */
    ReturnEntity addOrUpdate(SysUserVo sysUserVo, SysUser currentUser);
    /**
     * 重置密码
     *
     * @param id 对象id
     * @param currentUser 当前用户
     * @return ReturnEntity 对象
     * @author shengQiang yu
     * @date 2019-3-30 11:24:36
     */
    ReturnEntity resetPassword(String id, SysUser currentUser);
    /**
     * 删除
     *
     * @param id 主键id删除
     * @param currentUser 当前用户
     * @return ReturnEntity 对象
     * @author shengQiang yu
     * @date 2019-3-30 11:24:36
     */
    ReturnEntity delete(String id, SysUser currentUser);
    /**
     * 获取集合
     *
     * @param sysUserVo 对象
     * @return List<SysUser> SysUser集合
     * @author shengQiang yu
     * @date 2019-3-30 11:24:36
     */
    List<SysUser> acceptList(SysUserVo sysUserVo);
}
